home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / gaim / proxy.h < prev    next >
C/C++ Source or Header  |  2005-10-18  |  6KB  |  231 lines

  1. /**
  2.  * @file proxy.h Proxy API
  3.  * @ingroup core
  4.  *
  5.  * gaim
  6.  *
  7.  * Gaim is the legal property of its developers, whose names are too numerous
  8.  * to list here.  Please refer to the COPYRIGHT file distributed with this
  9.  * source distribution.
  10.  *
  11.  * This program is free software; you can redistribute it and/or modify
  12.  * it under the terms of the GNU General Public License as published by
  13.  * the Free Software Foundation; either version 2 of the License, or
  14.  * (at your option) any later version.
  15.  *
  16.  * This program is distributed in the hope that it will be useful,
  17.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  18.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  19.  * GNU General Public License for more details.
  20.  *
  21.  * You should have received a copy of the GNU General Public License
  22.  * along with this program; if not, write to the Free Software
  23.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  24.  */
  25. #ifndef _GAIM_PROXY_H_
  26. #define _GAIM_PROXY_H_
  27.  
  28. #include <glib.h>
  29. #include "eventloop.h"
  30.  
  31. /**
  32.  * A type of proxy connection.
  33.  */
  34. typedef enum
  35. {
  36.     GAIM_PROXY_USE_GLOBAL = -1,  /**< Use the global proxy information. */
  37.     GAIM_PROXY_NONE = 0,         /**< No proxy.                         */
  38.     GAIM_PROXY_HTTP,             /**< HTTP proxy.                       */
  39.     GAIM_PROXY_SOCKS4,           /**< SOCKS 4 proxy.                    */
  40.     GAIM_PROXY_SOCKS5,           /**< SOCKS 5 proxy.                    */
  41.     GAIM_PROXY_USE_ENVVAR        /**< Use environmental settings.       */
  42.  
  43. } GaimProxyType;
  44.  
  45. /**
  46.  * Information on proxy settings.
  47.  */
  48. typedef struct
  49. {
  50.     GaimProxyType type;   /**< The proxy type.  */
  51.  
  52.     char *host;           /**< The host.        */
  53.     int   port;           /**< The port number. */
  54.     char *username;       /**< The username.    */
  55.     char *password;       /**< The password.    */
  56.  
  57. } GaimProxyInfo;
  58.  
  59.  
  60. #include "account.h"
  61.  
  62. #ifdef __cplusplus
  63. extern "C" {
  64. #endif
  65.  
  66. /**************************************************************************/
  67. /** @name Proxy structure API                                             */
  68. /**************************************************************************/
  69. /*@{*/
  70.  
  71. /**
  72.  * Creates a proxy information structure.
  73.  *
  74.  * @return The proxy information structure.
  75.  */
  76. GaimProxyInfo *gaim_proxy_info_new(void);
  77.  
  78. /**
  79.  * Destroys a proxy information structure.
  80.  *
  81.  * @param info The proxy information structure to destroy.
  82.  */
  83. void gaim_proxy_info_destroy(GaimProxyInfo *info);
  84.  
  85. /**
  86.  * Sets the type of proxy.
  87.  *
  88.  * @param info The proxy information.
  89.  * @param type The proxy type.
  90.  */
  91. void gaim_proxy_info_set_type(GaimProxyInfo *info, GaimProxyType type);
  92.  
  93. /**
  94.  * Sets the proxy host.
  95.  *
  96.  * @param info The proxy information.
  97.  * @param host The host.
  98.  */
  99. void gaim_proxy_info_set_host(GaimProxyInfo *info, const char *host);
  100.  
  101. /**
  102.  * Sets the proxy port.
  103.  *
  104.  * @param info The proxy information.
  105.  * @param port The port.
  106.  */
  107. void gaim_proxy_info_set_port(GaimProxyInfo *info, int port);
  108.  
  109. /**
  110.  * Sets the proxy username.
  111.  *
  112.  * @param info     The proxy information.
  113.  * @param username The username.
  114.  */
  115. void gaim_proxy_info_set_username(GaimProxyInfo *info, const char *username);
  116.  
  117. /**
  118.  * Sets the proxy password.
  119.  *
  120.  * @param info     The proxy information.
  121.  * @param password The password.
  122.  */
  123. void gaim_proxy_info_set_password(GaimProxyInfo *info, const char *password);
  124.  
  125. /**
  126.  * Returns the proxy's type.
  127.  *
  128.  * @param info The proxy information.
  129.  *
  130.  * @return The type.
  131.  */
  132. GaimProxyType gaim_proxy_info_get_type(const GaimProxyInfo *info);
  133.  
  134. /**
  135.  * Returns the proxy's host.
  136.  *
  137.  * @param info The proxy information.
  138.  *
  139.  * @return The host.
  140.  */
  141. const char *gaim_proxy_info_get_host(const GaimProxyInfo *info);
  142.  
  143. /**
  144.  * Returns the proxy's port.
  145.  *
  146.  * @param info The proxy information.
  147.  *
  148.  * @return The port.
  149.  */
  150. int gaim_proxy_info_get_port(const GaimProxyInfo *info);
  151.  
  152. /**
  153.  * Returns the proxy's username.
  154.  *
  155.  * @param info The proxy information.
  156.  *
  157.  * @return The username.
  158.  */
  159. const char *gaim_proxy_info_get_username(const GaimProxyInfo *info);
  160.  
  161. /**
  162.  * Returns the proxy's password.
  163.  *
  164.  * @param info The proxy information.
  165.  *
  166.  * @return The password.
  167.  */
  168. const char *gaim_proxy_info_get_password(const GaimProxyInfo *info);
  169.  
  170. /*@}*/
  171.  
  172. /**************************************************************************/
  173. /** @name Global Proxy API                                                */
  174. /**************************************************************************/
  175. /*@{*/
  176.  
  177. /**
  178.  * Returns gaim's global proxy information.
  179.  *
  180.  * @return The global proxy information.
  181.  */
  182. GaimProxyInfo *gaim_global_proxy_get_info(void);
  183.  
  184. /*@}*/
  185.  
  186. /**************************************************************************/
  187. /** @name Proxy API                                                       */
  188. /**************************************************************************/
  189. /*@{*/
  190.  
  191. /**
  192.  * Initializes the proxy subsystem.
  193.  */
  194. void gaim_proxy_init(void);
  195.  
  196. /**
  197.  * Makes a connection to the specified host and port.
  198.  *
  199.  * @param account The account making the connection.
  200.  * @param host    The destination host.
  201.  * @param port    The destination port.
  202.  * @param func    The input handler function.
  203.  * @param data    User-defined data.
  204.  *
  205.  * @return 0 for success, -1 for failure
  206.  */
  207. int gaim_proxy_connect(GaimAccount *account, const char *host, int port,
  208.                        GaimInputFunction func, gpointer data);
  209.  
  210. /**
  211.  * Makes a connection through a SOCKS5 proxy.
  212.  *
  213.  * @param gpi     The GaimProxyInfo specifying the proxy settings
  214.  * @param host    The destination host.
  215.  * @param port    The destination port.
  216.  * @param func    The input handler function.
  217.  * @param data    User-defined data.
  218.  *
  219.  * @return The socket handle.
  220.  */
  221. int gaim_proxy_connect_socks5(GaimProxyInfo *gpi, const char *host, int port,
  222.                        GaimInputFunction func, gpointer data);
  223.  
  224. /*@}*/
  225.  
  226. #ifdef __cplusplus
  227. }
  228. #endif
  229.  
  230. #endif /* _GAIM_PROXY_H_ */
  231.